// Generated from Fun.g4 by ANTLR 4.0

package grammar;

import org.antlr.v4.runtime.tree.ParseTreeListener;

public interface FunListener extends ParseTreeListener {
    void enterFunctionArguments(FunParser.FunctionArgumentsContext ctx);

    void exitFunctionArguments(FunParser.FunctionArgumentsContext ctx);

    void enterMethodCall(FunParser.MethodCallContext ctx);

    void exitMethodCall(FunParser.MethodCallContext ctx);

    void enterThrowCompareExpression(FunParser.ThrowCompareExpressionContext ctx);

    void exitThrowCompareExpression(FunParser.ThrowCompareExpressionContext ctx);

    void enterObject(FunParser.ObjectContext ctx);

    void exitObject(FunParser.ObjectContext ctx);

    void enterNewClass(FunParser.NewClassContext ctx);

    void exitNewClass(FunParser.NewClassContext ctx);

    void enterPrimaryExpression(FunParser.PrimaryExpressionContext ctx);

    void exitPrimaryExpression(FunParser.PrimaryExpressionContext ctx);

    void enterThrowSumExpression(FunParser.ThrowSumExpressionContext ctx);

    void exitThrowSumExpression(FunParser.ThrowSumExpressionContext ctx);

    void enterLambdaWithoutArguments(FunParser.LambdaWithoutArgumentsContext ctx);

    void exitLambdaWithoutArguments(FunParser.LambdaWithoutArgumentsContext ctx);

    void enterApplications(FunParser.ApplicationsContext ctx);

    void exitApplications(FunParser.ApplicationsContext ctx);

    void enterLambdaWithArguments(FunParser.LambdaWithArgumentsContext ctx);

    void exitLambdaWithArguments(FunParser.LambdaWithArgumentsContext ctx);

    void enterThrowLogicExpression(FunParser.ThrowLogicExpressionContext ctx);

    void exitThrowLogicExpression(FunParser.ThrowLogicExpressionContext ctx);

    void enterLet(FunParser.LetContext ctx);

    void exitLet(FunParser.LetContext ctx);

    void enterIfThenElse(FunParser.IfThenElseContext ctx);

    void exitIfThenElse(FunParser.IfThenElseContext ctx);

    void enterCompare(FunParser.CompareContext ctx);

    void exitCompare(FunParser.CompareContext ctx);

    void enterMulDiv(FunParser.MulDivContext ctx);

    void exitMulDiv(FunParser.MulDivContext ctx);

    void enterStaticLambdaObject(FunParser.StaticLambdaObjectContext ctx);

    void exitStaticLambdaObject(FunParser.StaticLambdaObjectContext ctx);

    void enterLogic(FunParser.LogicContext ctx);

    void exitLogic(FunParser.LogicContext ctx);

    void enterThrowMultiplyExpression(FunParser.ThrowMultiplyExpressionContext ctx);

    void exitThrowMultiplyExpression(FunParser.ThrowMultiplyExpressionContext ctx);

    void enterProgram(FunParser.ProgramContext ctx);

    void exitProgram(FunParser.ProgramContext ctx);

    void enterAddSub(FunParser.AddSubContext ctx);

    void exitAddSub(FunParser.AddSubContext ctx);

    void enterExpressionInBrackets(FunParser.ExpressionInBracketsContext ctx);

    void exitExpressionInBrackets(FunParser.ExpressionInBracketsContext ctx);

    void enterIfThenElseExpression(FunParser.IfThenElseExpressionContext ctx);

    void exitIfThenElseExpression(FunParser.IfThenElseExpressionContext ctx);

    void enterLambdaExpression(FunParser.LambdaExpressionContext ctx);

    void exitLambdaExpression(FunParser.LambdaExpressionContext ctx);

    void enterThrowApplications(FunParser.ThrowApplicationsContext ctx);

    void exitThrowApplications(FunParser.ThrowApplicationsContext ctx);

    void enterIdentifier(FunParser.IdentifierContext ctx);

    void exitIdentifier(FunParser.IdentifierContext ctx);

    void enterApplicationsList(FunParser.ApplicationsListContext ctx);

    void exitApplicationsList(FunParser.ApplicationsListContext ctx);

    void enterLiteral(FunParser.LiteralContext ctx);

    void exitLiteral(FunParser.LiteralContext ctx);
}